/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package desarrollosoft.ghce.entidades;

import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

/**
 *
 * @author ariel
 */
@Entity
@DiscriminatorValue("INTERVENCION")
public class Intervencion extends Elemento {

    @Column(name = "observaciones", nullable = false, columnDefinition="TEXT") // text para permitir ingresar mucho texto
    private String observaciones;
    
    @ManyToOne
    @JoinColumn(name = "cirugia_id", nullable = false)
    private Prestacion cirugia;
    
    @ManyToOne
    @JoinColumn(name = "diagnostico_id", nullable = true)
    private Diagnostico diagnostico;
    
    public Intervencion() {
        super();
    }
    
    @Override
    public String getTipificacion() {
        return "Intervencion";
    }

    @Override
    public String getDescripcion() {
        return cirugia.getNombre();
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
        if (this.observaciones != null && this.observaciones.length() == 0) { // si llego un string vacio (""), seteo null
            this.observaciones = null;
        }
    }

    public Prestacion getCirugia() {
        return cirugia;
    }

    public void setCirugia(Prestacion cirugia) {
        this.cirugia = cirugia;
    }

    public Diagnostico getDiagnostico() {
        return diagnostico;
    }

    public void setDiagnostico(Diagnostico diagnostico) {
        this.diagnostico = diagnostico;
    }

    public Intervencion clonar() {
        Intervencion intervencion = new Intervencion();

        intervencion.setId(super.getId());
        intervencion.setFecha(super.getFecha());
        intervencion.setFechaFin(super.getFechaFin());
        intervencion.setGravedad(super.getGravedad());
        intervencion.setPaciente(super.getPaciente());
        intervencion.setProfesional(super.getProfesional());
        intervencion.setCirugia(cirugia);
        intervencion.setDiagnostico(diagnostico);
        intervencion.setObservaciones(observaciones);

        return intervencion;
    }
    
    
}
